package br.ufrj.ad.evento;

import br.ufrj.ad.As;
import br.ufrj.ad.entidade.Peer;
import br.ufrj.ad.entidade.Rodada;
import br.ufrj.ad.estatistica.Amostragem;

public class PeerUpload extends Upload {

	public PeerUpload(double tempo, Peer peer, Rodada rodada, As as) {
		super(tempo, peer, rodada, as);
	}

	@Override
	void agendaProximoUpload(Rodada rodadaProximoEvento) {
		//para a MM1 funcionar com mi = 0
		if(tempo > as.tempo && peer.temBloco() && as.peers.size() > 1) {
			PeerUpload event = new PeerUpload(tempo+Amostragem.exponencial(as.parametros.MI), peer, rodadaProximoEvento, as);
			as.eventos.add(event);
			peer.removeUploadAgendado(this);
			peer.addUploadAgendado(event);
		}
	}

}
